home *** CD-ROM | disk | FTP | other *** search
- % DOCUMENT OPTION STYLE -- Released 21-MAR-1991
- %
- % adapted from LETTER DOCUMENT STYLE by Leslie Lamport
- %
- % This style has to be used as an optional style.
- % Tests have been made with the article.sty as the basis sty.
- % This style was also used together with the finder.sty.
- % Advice: Use the STBrief.Sty in connection with the DefUser.Sty.
- % (Of course ist works without it)
- %
- % Copyright (c) 1991,1991 by Steffen Steinhaeuser
- % Permission to copy all or part of this work is granted, provided
- % that the copies are not made or distributed for resale, and that
- % the copyright notice and this notice are retained.
- %
- % THIS WORK IS PROVIDED ON AN "AS IS" BASIS. THE AUTHOR PROVIDES NO
- % WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK,
- % INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS
- % FOR ANY PARTICULAR PURPOSE.
- %
- % If you make any improvements, I'd like to hear about them.
- %
- % Steffen Steinh\"auser
- % Landwehrstr. 47
- % 6100 Darmstadt
- % Federal Republic of Germany
- % steinhaeuser@ddagsi5.bitnet
- % steffen_steinhaeuser@mz.maus.de
- %
- \def~{ }
- \typeout{-------------------------------------------------------}
- \typeout{| STBRIEF.STY V1.4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|}
- \typeout{| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c'15-Feb-91 R.Th/Stone |}
- \typeout{-------------------------------------------------------}
- \typeout{}
- %
- % Die Liste der folgenden Makros sollte mit den benutzerspezifischen
- % Daten in eine Datei als Optionstyle in \documentstyle[]{} angegeben
- % werden. Diese Arbeit sollte aber, falls vorhanden, der DefUser.Sty
- % uebernehmen.
- %
- % Folgenden Makros sollten die eigenen Einstellungen uebergeben werden:
- %
- % \name{}
- % \strasse{}
- % \stadt{}
- % \signature{}
- % \telefon{}
- % \faxnummer{}
- % \kontonr{}
- % \bank{}
- % \bankleitzahl{}
- % \smallogo{}
- % \logo{}
- % \logosymbol{}
- % \datum{}
- %
- % Folgende Makros sollten ggf. nur angegeben werden (oder nicht)
- %
- % \fax
- %
- % Folgende Flags bzgl. eigener Einstellung setzen
- %
- % \toplogo[true] oder \toplogofalse
- % \toprule[true] oder \toprulefalse
- % \bottomrule[true] oder \bottomrulefalse
- % \bankvtrue oder \bankv[false]
- % \from[true] oder \fromfalse
- % \symlogotrue oder \symlogo[false]
- %
- % [...] ist die Defaulteinstellung im STBrief.sty
- %
- % Ende der Liste
- %
-
- %
- % Font fuer das Logo im Briefkopf
- %
- \newfont{\toplogofnt}{cmtt10 scaled 2074}
- %
- % Skip zwischen zwei Absaetzen ist so gross wie etwa eine Leerzeile
- % Begin des Absatzes ist nicht eingerueckt
- %
- \parskip1.5ex plus.5ex minus.5ex
- \parindent0pt
- %
- % ****************************************
- % * laengen - definitionen *
- % ****************************************
- %
- % This is from documentsubstyle DINA4 for DIN A4 pagesize. GMD Z1.BN 12.06.85
- \oddsidemargin 0pt
- \evensidemargin 0pt
- \marginparwidth 0pt
- \marginparsep 0pt
- \marginparpush 0pt
-
- \topmargin -1.2cm
- \headheight 2.5cm
- \headsep 1cm
- \footheight 0.7cm
- \footskip 1cm
- \textheight 17cm
- \textwidth 16.2cm
- %
- % individuelle Einstellung je nach Computertyp und Druckertreiber
- %
- \voffset-8mm
- %\hoffset
- %
- % ****************************************
- % * logische flags - definitionen *
- % ****************************************
- %
- % Steuerung von etwaigen Ausgaben (oder nicht) durch neue IF-Kommandos
- %
- \newif\iftoplogo % Ausgabe des toplogos
- \newif\iftoprule % Linie oben (unter dem TopLogo)
- \newif\ifbottomrule % Linie unten (ueber der Bankverbindung)
- \newif\ifsmallfrom % Absender ueber der Adresse
- \newif\iffrom % from (-address) kann angeschaltet werden
- \newif\ifbankv % Ausgabe der Bankverbindung in der Fu_zeile
- \newif\ifsymlogo % Ausgabe eines Logosymbols
- %
- \newif\ifdefuser
- %
- % Defaulteinstellungen
- %
- \fromtrue
- \smallfromtrue
- \bankvfalse
- \toplogotrue
- \symlogofalse
- \topruletrue
- \bottomruletrue
- %
- % ****************************************
- % * textmakro - definitionen *
- % ****************************************
- %
- \def\fax{ %
- \smallfromfalse
- \toprulefalse
- \bottomrulefalse}
-
- \def\kontonr#1{\def\kontono{#1}}
- \def\kontono{}
-
- \def\bank#1{\def\bankname{#1}}
- \def\bankname{}
-
- \def\bankleitzahl#1{\def\bankzahl{#1}}
- \def\bankzahl{}
-
- \def\name#1{\def\fromname{#1}\def\fromsig{#1}}
- \def\fromname{}
-
- \def\strasse#1{\def\fromstreet{#1}}
- \def\fromstreet{}
-
- \def\stadt#1{\def\fromcity{#1}}
- \def\fromcity{}
-
- \def\signature#1{\def\fromsig{#1}}
- \def\fromsig{}
-
- \def\faxnummer#1{\def\faxnum{#1}}
- \def\faxnum{}
-
- \newlength{\telenumwidth}
- \newlength{\telewidth}
- \settowidth{\telewidth}{Telefon}
-
- \def\telefon#1{\def\telephonenum{#1}\settowidth{\telenumwidth}{#1}}
- \def\telephonenum{}
-
- \def\smallogo#1{\def\sfromlogo{#1}}
- \def\sfromlogo{}
-
- \def\logo#1{\def\fromlogo{#1}\def\sfromlogo{#1}}
- \def\fromlogo{}
-
- \def\logosymbol#1{\def\symlogo{#1} %
- \iftoplogo\else\def\fromlogo{#1}\fi %
- \ifx\@empty\symlogo\symlogofalse\else\symlogotrue\fi}
-
- \def\datum#1{\def\date{#1}}
- \def\date{\today}
- %
- % ****************************************
- % * stbrief environment - definitionen *
- % ****************************************
- %
- \def\opening#1{
- \thispagestyle{firstpage}
- {\hbox{} \par}
- \vspace*{5mm} % \vfill
- \par #1\par\nobreak
- }
-
- \long\def\closing#1{\par\nobreak\vspace{\parskip}
- \stopbreaks
- \noindent
- \parbox{0.5\textwidth}{\raggedright
- \ignorespaces #1\\[12mm]
- \ifx\@empty\fromsig\else
- \fromsig \fi\strut}\vfill
- \par}
-
- \def\cc#1{\par\noindent
- \parbox[t]{\textwidth}{\@hangfrom{\rm \ccname }\ignorespaces #1\strut}\par}
-
- \def\encl#1{\par\noindent
- \parbox[t]{\textwidth}{\@hangfrom{\rm \enclname }\ignorespaces #1\strut}\par}
-
- \def\stopletter{}
- %
- % Labels
- %
- \def\returnaddress{}
- \newcount\labelcount
- %
- % The following \startlabels command sets things up for producing
- % labels in two columns of five 2" X 4-1/4" labels each, suitable
- % for reproducing onto Avery brand number 5352 address labels.
- %
- \def\startlabels{\labelcount=0 \baselineskip=0pt \lineskip=0pt
- \pagestyle{empty}
- \let\@texttop=\relax
- \topmargin -50pt
- \headsep 0pt
- \oddsidemargin -35pt
- \evensidemargin -35pt
- \textheight 10in
- \@colht\textheight \@colroom\textheight \vsize\textheight
- \textwidth 550pt
- \columnsep 25pt
- \xpt
- \baselineskip=0pt
- \lineskip=0pt
- \boxmaxdepth=0pt
- \twocolumn\relax}
-
- \def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #2}}
- \vbox to 2in{\vss \box0 \vss}}
- %
- % ****************************************
- % * THE GENERIC STBRIEF COMMANDS *
- % ****************************************
- %
- \long\def\letter#1{\newpage
- \c@page\@ne
- \interlinepenalty=200 % smaller than the TeXbook value
- \@processto{#1}}
-
- \def\endletter{\stopletter\@@par\pagebreak \@@par
- \if@filesw
- \begingroup
- \def\protect{\string}
- \let\\=\relax
- \def\protect##1{\string##1\space}
- \immediate\write\@auxout{\string\mlabel{\returnaddress}{\toname
- \\\toaddress}}
- \endgroup
- \fi}
-
- \long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty
- \else \@yproc #1@@@\fi}
- \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
- \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
-
- \def\stopbreaks{\interlinepenalty \@M
- \def\par{\@@par\nobreak}\let\\=\@nobreakcr
- \let\vspace\@nobreakvspace}
-
- \def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
-
- \def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
- \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
-
- \def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
-
- \def\startbreaks{\let\\=\@normalcr
- \interlinepenalty 200\def\par{\@@par\penalty 200}}
-
- \def\document{\endgroup
- \@colht\textheight \@colroom\textheight \vsize\textheight
- \columnwidth\textwidth \@clubpenalty\clubpenalty
- \if@twocolumn \advance\columnwidth -\columnsep
- \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
- \fi
- \hsize\columnwidth \linewidth\hsize
- \begingroup\@floatplacement\@dblfloatplacement\endgroup
- \if@filesw \immediate\openout\@mainaux=\jobname.aux
- \immediate\write\@mainaux{\string\startlabels\string\@startlabels}\fi
- \def\do##1{\let ##1\@notprerr}
- \@preamblecmds
- \let\do\noexpand
- \@normalsize\everypar{}
- %
- % Sollten noch keine benutzerspezifischen Daten definiert sein,
- % gibt es jetzt die Moegloichkeit dazu
- %
- \ifdefuser\else\defuser\fi
- }
-
- \def\enddocument{\@checkend{document}\newpage\begingroup
- \if@filesw \immediate\closeout\@mainaux
- \makeatletter\input \jobname.aux\clearpage
- \fi\endgroup\deadcycles\z@\@@end}
-
- \def\makelabels{\@fileswtrue}
-
- \def\@startlabels{}
- %
- % ****************************************
- % * PAGE STYLES *
- % ****************************************
- %
- \gdef\@knickpoint{%
- \vbox to0pt{%
- \vskip1.8cm%
- \noindent\hbox to0pt{\hskip-1.8cm \null\vrule height.3pt width.5cm \hss}%
- \vss}%
- }
-
- \def\ps@firstpage{ %
- \headheight 7.5cm
- \def\@smallfrom{%
- \hbox{%
- \ifx\@empty\sfromlogo %
- \tiny \fromname\ $\cdot$ \fromstreet\ $\cdot$ \fromcity %
- \else %
- \tiny \sfromlogo\ $\cdot$ \fromstreet\ $\cdot$ \fromcity %
- \fi
- }
- }
-
- \def\@from{%
- \parbox[t]{0.33\textwidth}{\raggedright
- \vspace{8mm} %
- \iffrom %
- \scriptsize %
- \fromname \\ %
- \fromstreet \\ %
- \fromcity \\ %
- \parbox[t]{\telewidth}{Telefon} %
- \parbox[t]{\telenumwidth}{\telephonenum} \\
- \ifx\@empty\faxnum \else%
- \parbox[t]{\telewidth}{Telefax} %
- \parbox[t]{\telenumwidth}{\faxnum} \\ \fi%
- \normalsize %
- \else %
- \par \vspace{5mm} \par %
- \fi
- \vspace{12mm}
- \date}}
-
- \gdef\@firsthed{
- \vbox {
- \iftoplogo%
- \ifx\@empty\fromlogo%
- \parbox{\textwidth}{\Huge \fromname}%
- \else %
- \ifsymlogo%
- \parbox{\textwidth}{\symlogo}%
- \else %
- {\toplogofnt \fromlogo}%
- \fi%
- \fi%
- \fi%
- \vskip 3mm
- \iftoprule %
- \rule[0pt]{\textwidth}{1pt} %
- \fi%
- }
- }
-
- \def\@firsthef{ %
- \hbox to0pt{\@knickpoint\hss}%
- \vbox to \headheight{ %
- \@firsthed
- \vspace*{21mm}\par
- \vbox{
- \parbox[t]{.6\textwidth}{
- \vspace{8mm}
- \ifsmallfrom %
- \raggedright \@smallfrom %
- \vskip 1mm %
- \hrule %
- \fi
- \vskip 5mm
- \hspace*{.05\textwidth}
- \parbox[t]{.5\textwidth}{
- \ifx\toname\@empty
- \ifx\toaddress\@empty
- \vbox{.} \vspace{3cm} \vbox{.}
- \fi
- \else
- \toname \\ \toaddress
- \fi
- }
- }
- \hfil
- \@from
- }
- \vspace*{10mm} % \vfill
- }
- }
-
- \def\@oddhead{%
- \kern-9pt %
- \@firsthef
- }
-
- \def\@oddfoot{%
- \kern-3pt \vbox{
- \ifbottomrule %
- \rule[0pt]{\textwidth}{1pt} %
- \ifbankv %
- \scriptsize Bankverbindung:
- \bankname\ $\cdot$ BLZ.\bankzahl\ $\cdot$ Kto.\kontono %
- \hfill %
- \fi %
- \fi
- }
- }
-
- \def\@evenfoot{
- \iftoprule %
- \vbox{\rule[0pt]{\textwidth}{1pt} } %
- \fi
- }
- \global\textheight 21.7cm
- \global\@colht\textheight
- \global\@colroom\textheight
- \global\vsize\textheight
- }
-
- \def\ps@plain{ %
- \def\@plainhef{ %
- \vbox to \headheight {
- \@firsthed \vskip 10mm
- \vbox{\rm \hfil Seite \thepage }
- \vfill}
- }
-
- \def\@oddhead{
- \kern-9pt %
- \@plainhef
- }
-
- \def\@oddfoot{
- \vbox{
- \ifbottomrule\rule[0pt]{\textwidth}{1pt}\fi}
- }
- \let\@evenhead\@oddhead
- \def\@evenfoot{
- \vbox{
- \iftoprule\rule[0pt]{\textwidth}{1pt}\fi
- }
- }
- }
-
- \let\anlage\encl
- \let\kopie\cc
- %
- % stbrief default preparation
- %
- \ps@plain % 'plain' page style
- \pagenumbering{arabic} % Arabic page numbers
- \onecolumn % Single-column
- \@fileswfalse % Inhibits writing of .AUX file.
- %
- % ****************************************
- % * DEFINE USER *
- % ****************************************
- %
- \gdef\defuser{ %
- \openin1 defuser.sty
- \ifeof1
- \closein1\relax
- \typeout{}
- \typeout{TeX kann den DefUser.Sty nicht finden. Sie muessen die von Hand}
- \typeout{erstellte Datei mit den benutzerspezifischen Daten in die Liste}
- \typeout{der Optionen im \string\documentstyle~ eintragen. Sie sollten versuchen}
- \typeout{sich den DefUser.Sty zu besorgen, da er ihnen viel Arbeit erspart}
- \typeout{und immer ueber den neusten Stand des STBrief.Sty informiert ist.}
- \typeout{}
- \typeout{Da Ihr Brief ohne die benutzerspezifischen Daten nicht auskommt,}
- \typeout{wird an dieser Stelle der TeXlauf abgebrochen.}
- \typeout{}
- \typein[\return]{Druecken Sie <RETURN> !}
- \end{document}
- \else
- \closein1\relax
- \def\ja{j}
- \def\Ja{J}
- \typeout{}
- \typeout{Achtung:}
- \typeout{}
- \typeout{Wie sie wissen, benoetigt man fuer den STBrief.Sty eine Datei mit}
- \typeout{benutzerspezifischen Daten. Hier gibt es nun die Moeglichkeit}
- \typeout{diese Datei interaktiv anzulegen und gleich zu verwenden. Sollten}
- \typeout{jedoch eine solche Datei schon existieren, so geben sie einfach}
- \typeout{deren Namen ein.}
- \typeout{}
- \typein[\filename]{Bitte den Namen des DefUser-Files eingeben (ohne Extension):}
- \typeout{}
- \typeout{Merken Sie sich den Dateinamen \filename[.sty], damit Sie ihn}
- \typeout{demnaechst im \string\documentstyle~ als Option angeben koennen.}
- \openin2\filename.sty
- \ifeof2
- \closein2\relax
- \typeout{}
- \typeout{Keine Datei namens \filename.sty~ gefunden.}
- \typeout{Der DefUser.Sty wird Ihnen helfen eine zu erstellen.}
- \input{defuser.sty}
- \else
- \closein2\relax
- \typeout{}
- \typein[\antwort]{Soll die Datei \filename.sty~ geaendert werden (J/N)? [N]}
- \if\antwort\ja\let\antwort\Ja\fi
- \if\antwort\Ja
- \input{defuser.sty}
- \else
- \input{\filename.sty}
- \fi
- \fi
- \fi
- }
-